/* === LICENSE INFO ===
 * This source file is subject to the GPLv3 license that is bundled with this
 * package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.gnu.org/licenses/gpl.txt
 * === end of LICENSE INFO === */

/*==============================================================================
  File Name   : LogScreenWriter.hpp
  Description : Declaration for LogScreenWriter class in GLog module.

  Created on  : 2009-09-29
  Updated on  : 2011-01-30
  Updated by  : Lee Shiou Ming

  Cautions    : (important notes)
  ============================================================================*/

#ifndef LOGSCREENWRITER_HPP_
#define LOGSCREENWRITER_HPP_

#include "LogWriter.hpp"
#include <string>


/**
 * @brief All gUtil modules will be wrapped within gUtil namespace.
 */
namespace gUtil
{
/**
 * @brief Namespace for GLog module.
 */
namespace GLog
{
    /**
     * @brief Class implementation for output log to standard screen.
     */
    class LogScreenWriter : public LogWriter
    {
    public:
        /**
         * @brief Implementation for the same interface inherited from parent
         *        class.
         *
         * Internally uses the default message formatter provided by LogWriter.
         *
         * @param _logMessage
         * [IN] The message which log client wants to append.
         * @param _logLevelString
         * [IN] Log level string that will be pass to message formatter.
         * @param _log_msg_time
         * [IN] The time when log request was submitted.
         */
        void append(const std::string& _logMessage,
                const std::string& _logLevelString,
                const ptime& _log_msg_time);

    };  /* end of class LogScreenWriter */

}  /* end of namespace GLog */
}  /* end of namespace gUtil */

#endif  /* LOGSCREENWRITER_HPP_ */
